package cn.tedu.knows.faq.mapper;


import cn.tedu.knows.commons.model.Answer;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * <p>
 * Mapper 接口
 * </p>
 *
 * @author tedu.cn
 * @since 2021-11-26
 */
@Repository
public interface AnswerMapper extends BaseMapper<Answer> {

    // Mybatis提供的关联查询实现查询指定问题的所有回答和评论
    List<Answer> findAnswersByQuestionId(Integer questionId);

    /*
    JVM底层编译运行程序时默认情况下是不会保存局部变量的变量名称的
    由于参数也是局部变量,所以参数的名称会在编译时消失不能保存
    通过SpringBoot官方脚手架创建的java项目JVM的参数进行了修改和调优,
    能够保存局部变量名称,所以下面的方法如果是官方脚手架运行时正常的
    但是阿里脚手架没有设置Jvm保存局部变量的参数,所以局部变量名称仍然会丢失
    需要使用@Param注解来表名参数对应的占位符名称
     */
    @Update("update answer set accept_status=#{acceptStatus} " +
            " where id=#{answerId}")
    int updateAcceptStatus(
            @Param("acceptStatus") Integer acceptStatus,
            @Param("answerId") Integer answerId);


}


